Methods and systems for scheduling execution of interrupt requests

ABSTRACT

In process control based on partition setting which is a process corresponding to a plurality of operating systems (OSs), a configuration is implemented in which an interrupt request can be processed efficiently. In process control for switching processes which are based on the plurality of OSs, it is configured to set an interrupt processing partition as an interrupt processing execution period corresponding to an interrupt processing request so as to coincide with a pre-set partition switching timing. Further, a processing schedule is set, taking a maximum allowable delay time, a minimum allowable delay time into account. As a result of the present configuration, an increment in the number of partition switching processes can be kept to 1, and thus efficient data processing becomes possible.

TECHNICAL FIELD

The present invention relates to an information processing apparatus, aprocess control method, and a computer program. More particularly, theinvention relates to an information processing apparatus, a processcontrol method, and a computer program that implement optimal dataprocessing by management of timings at which to execute interruptrequest processing.

BACKGROUND ART

Generally, computer systems have a mechanism in which when an eventinvolving intervention of software occurs at peripheral hardware, theperipheral hardware sends an interrupt request to a processor to suspendexecution of a program being executed at that moment and to start aninterrupt processing program.

On the other hand, recent processors have their performance remarkablyenhanced by adopting, e.g., the following mechanisms a-c.

a. Cache memories

b. Many registers

c. Branch prediction mechanisms

However, these mechanisms exhibit a relatively low performance toprocessing, such as interrupt processing, which would change controlflow at unpredictable timing.

On the other hand, in high-speed communication mechanisms in whichinterrupts could occur, e.g., every 12 μsec, such as so-called gigabitEthernet (registered trademark), interrupt requests occur highlyfrequently. For example, in a case of receiving 1500-bytes packets at acommunication rate of 1 Gbps, each packet is received every 12microseconds. In a case where an ordinary hardware configuration isadopted in which an interrupt is originated every time a packet isreceived, interrupt processing must be performed every 12 microseconds.

Further, even in a system, such as a set-top box, in which manyinterrupt request originating sources must be stored internally, a ratioof a time consumed for interrupt processing to a total processing timetends to increase.

If interrupt request occurring intervals are predictable, this problemcan be overcome by polling of a timer device by an operating system.This configuration is disclosed in, e.g., Non-Patent Document 1 (MohitAron and Peter Druschel, Soft Timers: Efficient Microsecond SoftwareTimer Support for Network Processing, ACM Transactions on ComputerSystems, Vol. 18, No. 3, August 2000).

However, such a technique is not applicable to interrupt requestoriginating sources in which interrupt request occurring intervals arenot predictable. The problem that the overhead increases with increasinginterrupt occurring frequency would not only lead to a problem involvingindividual operating systems (OSs), but also impose a serious problem onpartition management software that executes OS scheduling forconcurrently operating a plurality of OSs in a single system.

In a case where a plurality of OSs are installed in a single system,processes executed by the OSs utilize hardware common to the system,i.e., a CPU, a memory, and the like, and thus it is required to executethe processes by the OSs while switching them time-sequentially.Partition management software executes such OS scheduling. Partitioningis a process corresponding to each of the OSs.

For example, assuming that two OS (α) and OS (β) reside together in asingle system, and that a process of the OS (α) is designated apartition A and a process of the OS (β) is designated a partition B,then the partition management software determines an execution schedulefor the partitions A and B, and executes the processes of the OSs on thebasis of the determined schedule.

Thus, in an environment in which a plurality of OSs operate in a singlesystem, in a case where an interrupt process can be executed only by theOS (α) operating in a particular partition, and in a case where apartition operating at the time of an interrupt request is the partition(B) of the OS (β) that cannot accommodate the interrupt process, aprocess is performed, in which the processing of the partition (B) issuspended; the interrupt process is executed by applying the OS (α); andthe processing of the partition (B) is resumed after the interruptprocess is completed. Thus, in processing interrupt requests, partitionswitching is to take place frequently.

Further, as a conventional partition management scheme, there is aconfiguration in which execution timings of partitions corresponding toOSs under management are determined irrespective of the occurrence ofinterrupts. In such a scheme, in a case where an interrupt requestoccurs, a partition corresponding to the interrupt request is to be set,without changing the already scheduled partitions corresponding to theOSs under management. In a case where an already scheduled partitiondwells for a long time period, an interrupt request process may have towait for a long time until its execution is started.

Thus, in the conventional partition management scheme that givespriority to the processes (partitions) of OSs under management, and thuskeeps an interrupt request process waiting until there is an empty timeslot between the processes (partitions) of the OSs under management, ina case where there is an interrupt request originating source demandinga stringent response time, an interrupt request process cannot beexecuted properly, making it likely to cause data processing error suchas communication error.

DISCLOSURE OF THE INVENTION

The present invention has been made in view of the above-mentionedproblems addressed in the related art, and thus has an object to providean information processing apparatus, a process control method, and acomputer program which, in a system in which a plurality of OSs areinstalled and processing of each of the OSs is executed by partitionmanagement, execute interrupt requests after determining their optimalprocessing timings, whereby to prevent the interrupt request processingoverhead from increasing to implement efficient processing of the systemas a whole, and to prevent occurrence of processing error due to waitingtimes exceeding allowable times of an interrupt request, or the like.

A first aspect of the present invention is an information processingapparatus characterized by having:

a storage section storing a plurality of operating systems (OSs),

a processor that executes processes which are based on theabove-mentioned plurality of OSs, and

process management means that schedules a partition defined as a processof each of the above-mentioned plurality of OSs along a time axis, andexecutes control for switching the above-mentioned plurality of OSs onthe basis of partition switching control along the scheduling, whereinthe above-mentioned process management means is configured to performprocess control in which an interrupt processing partition as aninterrupt processing period corresponding to an interrupt processingrequest is set so as to coincide with a pre-set partition switchingtiming, and to cause any of the above-mentioned OSs to execute aninterrupt process as a process subsequent to an end of a scheduledpartition in a partition schedule.

Furthermore, in an embodiment of the information processing apparatus ofthe present invention, the above-mentioned process management means ischaracterized by being configured to execute a process of setting theabove-mentioned interrupt processing partition so as to coincide with anearliest partition switching timing that occurs after occurrence of theinterrupt request.

Furthermore, in an embodiment of the information processing apparatus ofthe present invention, the above-mentioned process management means ischaracterized by being configured to perform process control in which apartition being executed is suspended to execute the interrupt process,in a case where a maximum allowable delay time is set to the interruptprocessing request and the pre-set partition switching timing does notoccur within the maximum allowable delay time from the occurrence of theinterrupt request.

Furthermore, in an embodiment of the information processing apparatus ofthe present invention, the processor that executes the processes whichare based on the above-mentioned plurality of OSs is characterized bybeing configured to have a plurality of processors capable of operatingin parallel, and the above-mentioned process management means ischaracterized by being configured to schedule the above-mentionedpartition along the time axis as to each of the above-mentionedplurality of processors to execute partition switching control along apartition schedule as to each of the processors, and to execute aprocess of selecting one of a plurality of partition schedulescorresponding to the above-mentioned plurality of processors, andsetting the above-mentioned interrupt processing partition so as tocoincide with a partition switching timing in the selected partitionschedule.

Furthermore, in an embodiment of the information processing apparatus ofthe present invention, the above-mentioned process management means ischaracterized by being configured to execute a process of selecting oneof the plurality of partition schedules in which an earliest partitionswitching timing occurs after the occurrence of the interrupt request,and setting the above-mentioned interrupt processing partition so as tocoincide with the earliest partition switching timing.

Furthermore, in an embodiment of the information processing apparatus ofthe present invention, the above-mentioned process management means ischaracterized by being configured to execute, in a case where theinterrupt request is a request in which a minimum allowable delay timeis set, a process of setting the above-mentioned interrupt processingpartition so as to coincide with a pre-set partition switching timingthat occurs after the minimum allowable delay time passes from theoccurrence of the interrupt request.

Furthermore, in an embodiment of the information processing apparatus ofthe present invention, the above-mentioned process management means ischaracterized by being configured to perform, in a case where aninterrupt process corresponding to an interrupt processing request isexecutable in a scheduled partition defined by a pre-set partitionschedule, a process of executing the interrupt process in theabove-mentioned scheduled partition.

Furthermore, in an embodiment of the information processing apparatus ofthe present invention, the processor that executes the processes whichare based on the above-mentioned plurality of OSs is characterized bybeing configured to have a plurality of processors capable of operatingin parallel, and the above-mentioned process management means ischaracterized as being configured to have a processor-correspondingpartition switching module arranged to execute process controlcorresponding to each of the processors.

Furthermore, in an embodiment of the information processing apparatus ofthe present invention, the above-mentioned partition switching module ischaracterized by being configured to have interrupt group information asinterrupt request originating source information which can beaccommodated by a processor to which the partition switching module ismade to correspond, and to execute a process related to an interruptrequest entry stored in a reservation queue corresponding to a groupwhich can be accommodated by a processor to be identified by theabove-mentioned interrupt group information, from a plurality ofinterrupt group-corresponding reservation queues, one being provided foreach interrupt group.

Furthermore, a second aspect of the present invention is a processcontrol method for controlling switching of processes which are based ona plurality of operating systems (OSs), which includes:

a step of detecting occurrence of an interrupt processing request,

an interrupt processing partition setting step of setting an interruptprocessing partition as an interrupt processing execution periodcorresponding to the above-mentioned interrupt processing request so asto coincide with a pre-set partition switching timing, and

an interrupt processing execution step of causing any of theabove-mentioned OSs to execute an interrupt process as a processsubsequent to an end of a partition scheduled in a partition scheduleaccording to the above-mentioned interrupt processing partition settinginformation.

Furthermore, in an embodiment of the process control method of thepresent invention, the above-mentioned interrupt processing partitionsetting step is characterized by executing a process of setting theabove-mentioned interrupt processing partition so as to coincide with anearliest partition switching timing that occurs after the occurrence ofthe interrupt request.

Furthermore, in an embodiment of the process control method of thepresent invention, the above-mentioned interrupt processing partitionsetting step is characterized by suspending a partition being executedand setting the interrupt processing partition at a suspended point, ina case where a maximum allowable delay time is set to the interruptprocessing request and the pre-set partition switching timing does notoccur within the maximum allowable delay time from the occurrence of theinterrupt request.

Furthermore, in an embodiment of the process control method of thepresent invention, the above-mentioned process control method includes astep of scheduling the above-mentioned partition along a time axis as toeach of the plurality of processors that execute processes which arebased on the above-mentioned plurality of OSs, to execute partitionswitching control along a partition schedule as to each of theprocessors, and the above-mentioned interrupt processing partitionsetting step is characterized by selecting one of a plurality ofpartition schedules corresponding to the above-mentioned plurality ofprocessors, and setting the interrupt processing partition so as tocoincide with a partition switching timing in the selected partitionschedule.

Furthermore, in an embodiment of the process control method of thepresent invention, the above-mentioned interrupt processing partitionsetting step is characterized by executing a process of selecting one ofthe plurality of partition schedules in which an earliest partitionswitching timing occurs after the occurrence of the interrupt request,and setting the above-mentioned interrupt processing partition so as tocoincide with the earliest partition switching timing.

Furthermore, in an embodiment of the process control method of thepresent invention, the above-mentioned interrupt processing partitionsetting step is characterized by executing, in a case where theinterrupt processing request is a request in which a minimum allowabledelay time is set, a process of setting the above-mentioned interruptprocessing partition so as to coincide with a pre-set partitionswitching timing that occurs after the minimum allowable delay timepasses from the occurrence of the interrupt processing request.

Furthermore, in an embodiment of the process control method of thepresent invention, the process control method is characterized byperforming a process of executing, in a case where an interrupt processcorresponding to an interrupt processing request is executable in ascheduled partition defined by a pre-set partition schedule, aninterrupt process corresponding to the interrupt processing request inthe above-mentioned scheduled partition.

Furthermore, a third aspect of the present invention is a computerprogram that executes process control for controlling switching ofprocesses which are based on a plurality of operating systems (OSs),which includes:

a step of detecting occurrence of an interrupt processing request,

an interrupt processing partition setting step of setting an interruptprocessing partition as an interrupt processing execution periodcorresponding to the above-mentioned interrupt processing request so asto coincide with a pre-set partition switching timing, and

an interrupt processing execution step of causing any of the OSs toexecute an interrupt process as a process subsequent to an end of apartition scheduled in a partition schedule according to theabove-mentioned interrupt processing partition setting information.

According to the configuration of the present invention, in a processcontrol for switching processes which are based on a plurality ofoperating systems (OSs), it is configured to set an interrupt processingpartition as an interrupt processing execution period corresponding toan interrupt processing request so as to coincide with a pre-setpartition switching timing. Therefore, an increment in the number ofpartition switching processes corresponding to the interrupt request canbe kept to 1, whereby processing load is prevented from increasing, andefficient data processing can be executed.

Furthermore, according to the configuration of the present invention, ina case where a maximum allowable delay time or a minimum allowable delaytime is set to an interrupt processing request, it is configured to setan interrupt processing partition at a partition switching timing if thepartition switching timing occurs within these allowable times, and toperform a forced interrupt process, e.g., in a case where the partitionswitching timing does not occur within these allowable times, whereby toexecute processing accommodating various interrupt processing requests.Therefore, a configuration free from processing error is implemented.

Furthermore, according to the configuration of the present invention, ina configuration in which processes by a plurality of OSs are executablein parallel in a multi-processor system, it is configured to select oneof a plurality of partition schedules corresponding to a plurality ofprocessors, and set an interrupt processing partition so as to coincidewith a partition switching timing in the selected partition schedule.Therefore, the interrupt request can be executed at the earliestpartition switching timing after the occurrence of the interruptprocessing request, from among the plurality of partition schedules, andthus more efficient data processing becomes possible.

Note that the computer program of the present invention is a computerprogram that can be provided by a storage medium, a communicationmedium, e.g., a storage medium such as a CD, a DVD, a MO, or acommunication medium such as a network that is provided in acomputer-readable form to, e.g., general-purpose computer systems thatcan execute various program codes. By providing such a program in acomputer-readable form, processing according to the program can beimplemented in the computer system.

Other objects, features, and advantages of the present invention willbecome more apparent by a more detailed description based on embodimentsthereof to be described later and accompanying drawings. Note that inthe present specification, the system means a configuration in which aplurality of apparatuses are logically grouped, and thus is not limitedto a configuration in which apparatuses having specific configurationsare arranged within a single housing.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram explaining a configuration of operating systems(OSs) applied to process control means, a process control method of thepresent invention.

FIG. 2 is a diagram showing example scheduling based on partitions.

FIG. 3 is a diagram explaining example scheduling of an interruptrequest in a single-processor system.

FIG. 4 is a diagram explaining an example conventional interrupt requestprocess in which an interrupt processing partition is instantly startedupon occurrence of an interrupt request.

FIG. 5 is a diagram explaining a processing example in which a maximumdelay time is limited.

FIG. 6 is a diagram explaining example scheduling for interrupt requestsin a multi-processor system.

FIG. 7 is a diagram explaining a scheduling process for an interruptrequest to which a minimum delay time is set.

FIG. 8 is a diagram explaining a process of waiting for a partitioncapable of performing an interrupt process to be scheduled and executingan interrupt process in the scheduled partition.

FIG. 9 is a diagram explaining a configuration of process managementmeans of the present invention.

FIG. 10 is a diagram explaining a data configuration of interruptrequest originating source information.

FIG. 11 is a diagram explaining an example of setting an interrupt groupnumber.

FIG. 12 is a diagram explaining an example of storing a reservationqueue.

FIG. 13 is a diagram explaining information referred to at the time of apartition switching process by a partition switching module.

FIG. 14 is a flowchart explaining a process at the time of occurrence ofan interrupt request.

FIG. 15 is a flowchart explaining a process adding an interrupt requestto the reservation queue.

FIG. 16 is a flowchart explaining a forced interrupt process.

FIG. 17 is a flowchart explaining a partition switching process.

FIG. 18 is a diagram showing a structural example of an informationprocessing apparatus to which the present invention is applicable.

BEST MODES FOR IMPLEMENTING THE INVENTION

Details of an information processing apparatus, a process controlmethod, and a computer program of the present invention will hereinafterbe described. Note that the description will be given in the order ofthe following sections.

1. Outline of process management according to the present invention

2. Process example 1 for interrupt request

3. Process example 2 for interrupt request

4. Process in multi-processor system

5. Interrupt request process to which minimum delay time is set

6. Interrupt request process using regular schedules

7. Configuration of process management means

8. Interrupt process setting and execution sequences

9. Example hardware configuration of information processing apparatus

[1. Outline of Process Management According to the Present Invention]

Referring first to FIG. 1, an outline of an information processingapparatus, a process control method of the present invention will bedescribed. FIG. 1 is a diagram illustrating a configuration of operatingsystems (OSs) applied to an information processing apparatus, a processcontrol method of the present invention.

The operating systems (OSs) applied to the information processingapparatus, the process control method of the present invention areconfigured, as shown in FIG. 1, such that a plurality of level 1-OSs(1α) (1β) (1γ) 103 are set on a level 0-OS (0) 102 that is arranged at alevel 0. Applications 104 as various specific processing programs areset on the level 1-OSs 103 and operate so as to correspond to any of thelevel 1-OSs 103. Although there are shown three level 1-OSs 103 in FIG.1, this is merely an example; the present invention is applicable to aso-called multi-OS system having an arbitrary number of OSs that is twoor more. These OSs are stored in a storage section of the informationprocessing apparatus and executed by a processor.

Note that in the following description, the OS (1), the OS (1α), the OS(1β) . . . mean level 1-OSs, and the OS (0) means a level 0-OS.

Hardware (HW) 101 is hardware such as a processor (CPU), a memory,commonly used among the OSs.

The level 0-OS (0) 102 executes scheduling related to processes executedby the three OSs (1), i.e., the OS (1α), the OS (1β), the OS (1γ) in thepresent example. The level 0-OS (0) 102 schedules the processescorresponding to the level 1-OSs (1) time-sequentially using divisionscalled partitions.

A scheduling example based on partitions is shown in FIG. 2. FIG. 2( a)is an example of partition scheduling in a configuration of asingle-processor system having only one processor applicable to theprocesses of the level 1-OSs (1).

In the single-processor system having only one processor applicable tothe processes of the level 1-OSs (1), the OS (1α), the OS (1β), the OS(1γ), which are level 1-OSs (1), cannot execute their processes inparallel, and thus their processes are scheduled into a singletime-sequential process.

In the example shown in FIG. 2( a), the system executes a process by theOS (1α), i.e., a partition A, during a time t0-t1, a process by the OS(1β), i.e., a partition B, during a time t1-t2, and a process by the OS(1γ), i.e., a partition C, during a time t2-t3. From then on, theprocesses of the respective OSs are to be executed along the time axis.

FIG. 2( b) is an example of partition scheduling in a configuration of amulti-processor system having two processors applicable to the processesof the level 1-OSs.

In a case where there are a plurality of processors applicable to theprocesses of the level 1-OSs, the OS (1α), the OS (1β), the OS (1γ),which are level 1-OSs (1), can execute their processes in parallelaccording to the number of processors. Therefore, the level 0-OS (0)schedules the execution processes of the level 1-OSs as a plurality oftime-sequential processes according to the number of processors.

In the example shown in FIG. 2( b), a processor 1 executes the processby the OS (1α), i.e., the partition A, during a time t10-t11, theprocess by the OS (β), i.e., the partition B, during a time t11-t12. Onthe other hand, a processor 2 executes the process by the OS (1β), i.e.,the partition B, during a time t20-t21, and the process by the OS (1γ),i.e., the partition C, during a time t21-t22.

[2. Process Example 1 for Interrupt Request]

Next, partition management in a case of an interrupt request will bedescribed. In a case where an interrupt request occurs, the level 0-OS(0) 102 executes a process of determining at which timing an interruptprocess should be executed by which level 1-OS (1). That is, the level0-OS (0) 102 as a process management means performs a process of settingan interrupt processing partition as an execution time for the interruptprocess corresponding to the interrupt request.

In a case where the interrupt processing partition is set, the level1-OS (1) performs the process according to the set partition schedule.

Referring to FIG. 3, a scheduling example of an interrupt request willbe described, which is performed in a system in which the number ofprocessors is one or processors are independent of each other in termsof interrupt processing, i.e., a single-processor system.

The example interrupt request scheduling shown in FIG. 3 is an examplein which, in a case where the interrupt request cannot be processed bythe OS (1α) that is executing a partition at the time of the interruptrequest, the level 0-OS (0) sets an interrupt partition to an OS (1 x)(x≠α) capable of processing the interrupt request after the partitionbeing executed is terminated, while keeping the interrupt requestwaiting until the partition being executed is terminated. FIG. 3( a)shows scheduling at the time no interrupt has occurred yet.

In FIG. 3( b), the interrupt request occurs during execution of thepartition A that is a process by the OS (1α), and in a case where theinterrupt request cannot be executed by the OS (1α) but can be executedby another OS (1 x) (x≠α), execution of an interrupt request process iskept from being executed until a scheduled partition switching timeoccurs. After the interrupt request process is completed, the process bythe partition B is executed.

As shown in FIG. 3( b), although an interrupt request 201 occurs duringexecution of the partition A, which is a process by the OS (1α), thelevel-0 (OS) retards the start of processing the interrupt request 201until execution of the partition A is terminated.

That is, the level 0-OS keeps the interrupt request 201 waiting untilthe end time of the partition A that occurs after a time Td passes fromthe occurrence of the interrupt request, and sets an interruptprocessing partition that is a process corresponding to the interruptrequest. This delay time Td is a time until a timing at which switchingoccurs from the partition A to another partition in a partition schedulemade when the interrupt has not occurred yet. In the present embodiment,the interrupt processing partition is set so as to coincide with theearliest partition switching timing that occurs after the occurrence ofthe interrupt request.

The above-mentioned scheduling process for an interrupt request providesan advantage of reducing the number of partition switches, compared withthe conventional scheme.

A conventional interrupt request process example is shown in FIG. 4, inwhich an interrupt processing partition is instantly started uponoccurrence of an interrupt request.

The process example shown in FIG. 4 is an example in which an interruptrequest occurs at a similar timing to that shown in FIG. 3. FIG. 4( a)shows scheduling at the time no interrupt has occurred yet.

In FIG. 4( b), in a case where an interrupt request 211 occurs duringthe execution period of the partition A, which is a process by the OS(1α), and this interrupt request cannot be executed by the OS (1α) butcan be executed by another OS (1 x) (x≠α), an interrupt processingpartition 212 is instantly started upon occurrence of the interruptrequest.

As shown in FIG. 4( b), the interrupt request 211 occurs during theexecution period of the partition A, which is a process by the OS (1α),and the interrupt processing partition 212 is set immediatelythereafter.

At this timing, the partition A is suspended, and two partitions A221,A222 are to be executed before and after the interrupt processingpartition 212. As a result, switching from the partition A221 to theinterrupt processing partition 212, and switching from the interruptprocessing partition 212 to the partition A222 are required, increasingthe number of partition switching involved for executing the interruptprocess to 2.

In the example shown in FIG. 3, the interrupt processing partition isexecuted only after the partition A is terminated, and thus an incrementin the number of partition switching involved for executing theinterrupt process is only 1. Thus, by retarding the interrupt process inthis way, an advantage is provided that the increment in the number ofpartition switches can be reduced to 1.

Another advantage is to improve instruction execution efficiency. InFIG. 4, times set for the two split partitions A221, A222 are a T1, aT2, respectively, and T1+T2 equals the time T set when no interrupt hasoccurred yet. That is, T=T1+T2.

However, despite the fact that the length of the period T equals the sumof the lengths of the periods T1 and T2, the number of instructionsexecutable during the period T becomes greater than the total ofinstructions executed during the periods T1 and T2. This happens becausethe execution of the partition A is not split by the execution of theinterrupt processing partition. While the execution of the partition Ais being suspended by the interrupt processing partition, states ofvarious cache mechanisms and buffers (cache memories and TLB, branchprediction buffers) are updated by the interrupt processing partition.As a result of the updating, the instruction execution efficiency afterthe system having returned to the partition A is impaired, compared withthe partition A being executed continuously.

As described with reference to FIG. 3, by setting an interrupt requestprocessing partition to a timing that occurs after the scheduled endtime of the partition being executed at the time of the interruptrequest, advantages such as a reduction in the partition switchingoverhead and an improvement in the instruction execution efficiency areprovided.

[3. Process Example 2 for Interrupt Request]

When the above-mentioned interrupt request process delaying technique isapplied, in a case where a long execution time is set to a partitionbeing executed at the time of an interrupt request, the start time of aninterrupt request process would be retarded, and error would even becaused in some interrupt processes.

As a process for overcoming this, an example in which a maximum delaytime is limited will be described with reference to FIG. 5.

FIG. 5( a) shows an example process equivalent to the above-mentionedembodiment, in which the execution start position of an interruptprocess is set at the end time of a partition (partition A) beingexecuted at the time of an interrupt request 301. An interruptprocessing partition 302 is set after the partition A is terminated.

The example shown in FIG. 5( a) is a process in which a time Td from theoccurrence of the interrupt request 301 to a scheduled end time of thepartition A is shorter than a maximum allowable delay time Tmax of theinterrupt request, i.e., Td<Tmax, and thus it is a process that wouldcause no problem even if the execution of the interrupt request isdelayed until the scheduled end time of the partition A.

Some interrupt requests have maximum allowable delay times set. Themaximum allowable delay time is held by the level 0-OS (0) as, e.g.,information set so as to correspond to an interrupt request originatingsource. These configurations will be described later.

In a case where an interrupt request to which a maximum allowable delaytime is set occurs, and, as shown in FIG. 5( b), if a time to thescheduled end time of a partition being executed at the time of aninterrupt request 311 is longer than the maximum allowable delay timeTmax of the interrupt request, the level 0-OS (0) suspends the partitionA within the maximum allowable delay time Tmax of the interrupt requestwithout waiting for the processing end of the partition, and sets andexecutes an interrupt processing partition 312.

This process is called a forced interrupt process. As a result of thisforced interrupt process, the partition A is to be processed by divisioninto a first-half partition A321 and a second-half partition A322.

Thus, in a case where partition switching does not take place even asthe maximum allowable delay time of an interrupt request has passed, apartition being executed is suspended on or before the passage of themaximum allowable delay time, to be switched to an interrupt processingpartition for execution.

Thus, in a system in which an interrupt request having a limited maximumresponse time (maximum allowable delay time) could occur, execution ofan interrupt request process within the maximum response time (maximumallowable delay time) can be guaranteed by retarding the interruptprocess while taking the allowable delay time into account, to preventoccurrence of data processing error due to excessive delay of theinterrupt request.

[4. Process in Multi-processor System]

In the above-mentioned embodiments, their description has been premisedon a system having only one processor or processors that are independentwith each other in terms of interrupt processing. In a system in which aplurality of processors can perform processes in parallel, moreefficient processing becomes possible.

A scheduling example for interrupt requests in a multi-processor systemwill be described with reference to FIG. 6. In FIG. 6, there are threeprocessors capable of parallel processing (a processor 1, a processor 2,a processor 3), and the processing sequences for the processors 1, 2, 3are scheduled by the level 0-OS (0), respectively.

FIG. 6( a) shows partition-based scheduling for a process to which theprocessor 1 is applied; and FIG. 6 (b) shows partition-based schedulingfor a process to which the processor 2 is applied; and FIG. 6( c) showspartition-based scheduling for a process to which the processor 3 isapplied.

In this example, an interrupt request X401 and an interrupt request Y402occur at the processor 1. The processor 1 continues its execution of thepartition A, while leaving interrupt processing partitions retarded.Thereafter, the processor 2 terminates its processing of the partitionB, so a partition switching timing 411 occurs.

The partition configuration of each of the processors is supervised bythe level 0-OS (0), and the level 0-OS (0) thus identifies a processorto which the earliest one of partition switching timings is set, whichoccurs after the interrupt request X401 or the interrupt request Y402occurring at the processor 1.

At this time, the earliest partition switching timing to which aninterrupt process X can be set is the partition switching timing 411that coincides with the end of the processing of the partition B at theprocessor 2. The level 0-OS (0) transfers the interrupt process X beingreserved at the processor 1 to the processor 2, and makes a schedulesuch that the interrupt process X is processed subsequent to thepartition B, and thus sets an interrupt processing partition 412 so asto be processed after the processing of the partition B is terminated atthe processor 2, to cause the interrupt process X to be executed by theprocessor 2.

Furthermore, the earliest partition switching timing to which aninterrupt process Y can be set is a partition switching timing 421 thatcoincides with the end of the processing of a partition D at theprocessor 3. The level 0-OS (0) transfers the interrupt process Y beingreserved at the processor 1 to the processor 3, and makes a schedulesuch that the interrupt process Y is processed subsequent to thepartition D, and thus sets an interrupt processing partition 422 so asto be processed after the processing of the partition D is terminated atthe processor 3, to cause the interrupt process Y to be executed by theprocessor 3.

Thus, in the multi-processor system capable of executing parallelprocessing by a plurality of processors, interrupt processes beingdelayed can be transferred between processors to cause an interruptprocess being delayed to be executed by a processor to which theearliest partition switching timing that occurs after the occurrence ofthe interrupt request is set, and thus execution of an interrupt processwith a shorter delay time becomes possible. Thus, execution of aninterrupt process using a partition switching timing set by apredetermined partition schedule can be implemented at a highprobability without suspending a partition being executed to handle aforced interrupt.

[5. Interrupt Request Process to Which Minimum Delay Time is Set]

As mentioned earlier, some interrupt requests have maximum allowabledelay time set. Furthermore, other interrupt requests have minimum delaytime set. A minimum delay time is set, e.g., for each interrupt requestoriginating source, and is set as interrupt request originating sourceinformation, which is management information of the level 0-OS (0).These information items will be described later.

In a case where an interrupt request to which a minimum delay time isset occurs, its process would not be started until the minimum delaytime passes, even if partition switching takes place.

Referring to FIG. 7, a scheduling process will be described, which isbased on partition setting executed by the level 0-OS (0) for aninterrupt request to which a minimum delay time is set.

In FIG. 7, an interrupt request 501 occurs during execution of thepartition A. According to the earlier mentioned embodiments, aninterrupt processing partition is to be set at the time of switchingfrom the partition A to the partition B. However, the interrupt request501 is an interrupt request to which a minimum delay time is set.

Thus, for the interrupt request to which a minimum delay time is set,the level 0-OS (0) keeps the interrupt request waiting until the minimumdelay time passes from the occurrence of the interrupt request 501, andsets an interrupt processing partition 501 to a partition switchingtiming that occurs thereafter. The interrupt processing partition 501 isset after the partition B shown in FIG. 7 is terminated.

Note that in a case where an interrupt request to which a maximum delaytime is additionally set, a process in which the maximum delay time isfurther taken into account. That is, if a timing for switching apartition occurs after the minimum delay time passes from the occurrenceof the interrupt request and within the maximum delay time, an interruptprocessing partition is set. However, in a case where a timing forswitching a partition does not occur after the minimum delay time passesfrom the occurrence of the interrupt request and within the maximumdelay time, the level 0-OS (0) suspends execution of that partition, andsets an interrupt processing partition therein.

[6. Interrupt Request Process Using Regular Schedules]

The schemes so far described are examples in which an interrupt processis basically postponed until a first timing for switching a partitionoccurs after occurrence of an interrupt, and in a case of no permission,the interrupt process is executed by suspending the partition.

However, some interrupt request originating source has a sufficientlylonger allowable delay time than intervals at which partition switchingoccurs. On the other hand, it is rare for a partition performing aninterrupt process to perform only the interrupt process, and thus such apartition is often allocated with a processor time similar to thatallocated to other partitions. In such a case, in a regular schedulingprocess executed by the level 0-OS (0), it can be configured such thatthe level 0-OS (0) keeps a partition capable of performing an interruptprocess from being scheduled, and executes the interrupt process in thescheduled partition. However, in this case also, it is conditional thatthe scheduling of the partition be retarded within a range not exceedingthe allowable delay time of the interrupt request.

According to this configuration, setting of a partition solely for theexecution of an interrupt request is no longer needed, and thus theinterrupt processing overhead can be further reduced.

The present configuration is a technique by which in a case where apartition schedule set by the level 0-OS (0) is predictable, aninterrupt process is postponed using this predicted schedule. Referringto FIG. 8, an interrupt request process according to the presentembodiment and its correspondence to a partition schedule will bedescribed.

In FIG. 8, an interrupt request 601 occurs during execution of thepartition A. A maximum allowable delay time (Tmax) is set to thisinterrupt request 601.

Let it be assumed that it could be predicted that a partition capable ofprocessing the interrupt request 601 is scheduled within the maximumallowable delay time (Tmax), after the interrupt request 601 occurs.Then, this interrupt request 601 is set so as to be processed by thatpartition.

In FIG. 8, a partition D611 is a partition capable of processing theinterrupt request 601, and also scheduled by a regular partitionscheduling process by the level 0-OS (0). The interrupt request 601 isset so as to be executed in the partition D611.

According to this configuration, setting of a partition solely for theexecution of an interrupt request is no longer needed, and thus theinterrupt processing overhead can be reduced to implement efficient dataprocessing.

[7. Configuration of Process Management Means]

Several process management process examples of the present inventionhave been described above. A configuration of process management meansfor executing these processes will be described below.

Referring to FIG. 9, an information management configuration of theprocess management means of the present invention will be described. Anexample configuration shown in FIG. 9 is an information configuration ina multi-processor system having a plurality of processors, in which eachitem of information is managed under the control of the level 0-OS (0)shown in FIG. 1, and operation by each of modules is also controlled. Aprocessor-1 731, a processor-2 732, a processor-3 733 can executeprocesses according to the level 1-OSs (1) in parallel. Note that thelevel 0-OS (0) also executes its process using any of the processors.

A memory that manages information is divided into a shared memory 710 asa memory area common to the processors, and processor-correspondingmodules 720 set so as to correspond to the processors, respectively.

Stored in the shared memory 710 are interrupt request originating sourceinformation 711, reservation queues 712, 713 . . . , and notifiedinterrupt request information 714.

Set to each of the processor-corresponding modules 720 is a timer 721, apartition switching module 722, a local memory 723.

Each of the structural elements will be described. The interrupt requestoriginating source information 711 stored in the shared memory 710 isinformation corresponding to interrupt request originating sources thatoriginate interrupt requests, and includes information shown in FIG. 10.

In an apparatus that executes data processing, interrupt requestoriginating sources that originate interrupt requests would bepredetermined elements such as, e.g., a network interface. The interruptrequest originating source information 713 is a record of informationlisted for each interrupt request originating source that originatessuch an interrupt request.

As shown in FIG. 10, the following information items a-d are set so asto correspond to each interrupt request originating source.

a. Interrupt group number

b. Interrupt processing partition ID

c. Maximum allowable delay time

d. Minimum allowable delay time

The item “a. Interrupt group number” is information about a group ofinterrupt request originating sources for which a processorcorresponding to a partition switching module set so as to correspond toeach of the processors can perform processes. Group numbers such asshown in, e.g., FIG. 11 are set. In an example shown in FIG. 11, a group1 is set as a group of interrupt request originating sources a, b, cthat originate interrupt requests, and a group 2 is set as a group ofinterrupt request originating sources d, e, f that originate interruptrequests.

A partition switching module set so as to correspond to each of theprocessors is to execute only processes related to interrupt requestentries stored in a reservation queue corresponding to a group that canbe processed by a processor to be identified by the interrupt groupinformation, from a plurality of interrupt group-correspondingreservation queues 712, 713 . . . each being set as an interrupt requestqueue that is set for each interrupt group.

Returning to FIG. 10, the configuration of the interrupt requestoriginating source information will continuously be described. The item“b. Interrupt processing partition ID” is an ID as the identifier of apartition for executing an interrupt request originated by thatinterrupt request originating source. The level 0-OS (0) sets theinterrupt processing partition ID as partition scheduling data in a caseof scheduling an interrupt processing partition in each of theabove-mentioned example processes. An interrupt partition is executedaccording to this setting.

The items “c. Maximum allowable delay time”, “d. Minimum allowable delaytime” are a maximum allowable delay time and a minimum allowable delaytime set so as to correspond to an interrupt request originated by thatinterrupt request originating source. These information items may not beset in some cases. As described in the above-mentioned process examples,in a case where these information items are set, the level 0-OS (0) setsan interrupt processing partition such that a process can be executedwithin these allowable times.

As shown in FIG. 9, the shared memory 710 stores reservation queues 712,713 set for each interrupt group. The interrupt group is, as describedabove with reference to FIG. 11, information about a group of interruptrequest originating sources for which a processor corresponding to apartition switching module set so as to correspond to each of theprocessors can perform processes.

For example, set as entries in the reservation queue 712 are onlyinterrupt requests originated by the group number 1, i.e., the interruptrequest originating sources a, b, c that originate interrupt requests.Set as entries in the reservation queue 713 are only interrupt requestsoriginated by the group number 2, i.e., the interrupt requestoriginating sources d, e, f that originate interrupt requests.

In each of the reservation queues, there are stored, as informationabout interrupt requests already originated, interrupt request IDs whichare the identifiers of the interrupt requests, maximum allowable delaytimes and minimum allowable delay times corresponding to the interruptrequests, respectively. They are stored in the order of shorter maximumallowable delay times. In a case of scheduling interrupt processingpartitions, the level 0-OS (0) sets the interrupt processing partitionsor performs a process of setting partitions for executing interruptprocesses, by extracting a first one of the reservation queues, i.e., inthe order of shorter maximum allowable delay times.

The notified interrupt request information 714 in the shared memory 710shown in FIG. 9 is an area where to store interrupt request informationof which the level 1-OSs, which will actually process the interruptrequests, have already been notified.

That is, the level 1-OSs (1 x) are notified sequentially of theinterrupt request information stored in the reservation queues 712, 713under the control of the level 0-OS (0), so as to be assigned to processthe interrupt requests. After the notification, the information isstored in the notified interrupt request information 714, and when aninterrupt processing partition is completed and the ensuring partitionswitching takes place, the corresponding one of the notified interruptrequest information 71 is cleared. Note that in a case where a partitionbeing executed by a processor at the time of an interrupt request canexecute the interrupt request instantly, the level 0-OS (0) notifies anOS (1 x) assigned to process the interrupt request without holding theinterrupt request in a reservation queue, and then stores the interruptrequest information in the notified interrupt request information 714.

Next, a configuration of the processor-corresponding module 720 shown inFIG. 9 will be described. Set in the processor-corresponding module 720are the timer 721, the partition switching module 722, the local memory723.

The partition switching module 722 is a module set for each processor,and performs partition switching such that each partition is executed ina time-division manner as a time measured by the corresponding timer 721passes.

As described in the above-mentioned example processes, the moduleperforms switching to a scheduled partition at a scheduled partitionswitching time according to a partition schedule set by the level 0-OS(0). For example, the module switches the partition A to the partitionB, or to an interrupt processing partition.

The example shown in FIG. 9 involves three processors, and the partitionswitching modules corresponding to the respective processors are toexecute partition switching according to the partition schedules shownin, e.g., FIG. 6( a), (b), (c) described earlier, respectively.

The partition switching module executes the process by referring toinformation shown in FIG. 13 stored in the corresponding local memory723.

That is, the module executes partition switching by referring to thefollowing variables, and data structures.

a. Current partition: The ID of a partition currently being executed

b. Interrupt group set: A set of interrupt groups that can be processedby a processor that operates a partition switching module

c. Partition context: Context of each partition

Stored in the partition context are the following values, besidesinformation necessary to resume a suspended process, such as thecontents of a register.

c-1. Notified interrupt set: A set of interrupts to be processed by thispartition

c-2. Predicted start time: A scheduled time at which this partition isstarted next (this partition is controlled so as not to be started laterthan the scheduled time)

Furthermore, stored in the local memory 723 are time information forexecuting a process according to a partition schedule, addressinformation for executing a program. Specifically,

Set time information: Time to start a set process

Routine address to be started at set time: The address of a routine inwhich a process to be executed is written

Additional information address: An additional information addressdelivered as an argument when the routine is started

These information pieces are stored as listed in the order of set times.Each of the processors acquires an execution program, parametersnecessary to execute the program, and the like based on a routineaddress to be started at a set time and an additional informationaddress, at the set time set as the set time information, i.e., at thetime a new partition is executed after partition switching, to startprocessing the new partition.

[8. Interrupt Process Setting and Execution Sequences]

Turning next to flows of FIGS. 14 to 17, the procedures of processescorresponding to interrupt requests to be executed in the processmanagement process of the present invention will be described. Thedescription will be given as divided into the following four processes.Note that these processes are executed by the level 0-OS (0).

a. Process at the time of an interrupt request (FIG. 14)

b. Process of adding an interrupt request to a reservation queue (FIG.15)

c. Forced interrupt process (FIG. 16)

d. Partition switching process (FIG. 17)

a. Process at the Time of an Interrupt Request

Referring first to a flowchart of FIG. 14, the procedure of a processwill be described, which is performed when a certain interrupt requestoriginating source sends an interrupt request to a processor.

When an interrupt request originating source sends an interrupt requestto a processor, the level 0-OS (0) determines in step S101 whether ornot a current partition being executed by the processor is a partitioncapable of executing the interrupt request. This is determined by thelevel 0-OS (0) based on the interrupt request originating sourceinformation described earlier with reference to FIG. 10.

In a case where the current partition is a partition capable ofexecuting the interrupt request, the process proceeds to step S102,where the level 0-OS (0) notifies an OS (1 x) executing the currentpartition of a request for processing the interrupt request, andregisters it in the notified interrupt request information.

The level 1-OS (1 x) thus notified of the request for processing theinterrupt request performs an interrupt request process within thecurrent partition, under its own schedule.

If it is determined in step S101 that the current partition beingexecuted by the processor is not a partition capable of executing theinterrupt request, the process proceeds to step S103, where it isdetermined whether or not a partition for executing the interruptrequest is scheduled to be executed prior to a maximum allowable delaytime set so as to correspond to the interrupt request originatingsource. This is determined by the level 0-OS (0) based on pre-setpartition schedule information.

In a case where the partition for executing the interrupt request isscheduled to be executed prior to the maximum allowable delay time setso as to correspond to the interrupt request originating source, theprocess proceeds to step S104 to notify the OS (1 x) for executing thepartition scheduled to be executed prior to the maximum allowable delaytime, of the request for processing the interrupt request, and toregister it in the notified interrupt request information.

The level 1-OS (1 x) thus notified of the request for processing theinterrupt request performs an interrupt request process within thepartition scheduled to be executed, under its own schedule.

On the other hand, in a case where it is determined in step S103 thatthe partition for executing the interrupt request is not scheduled to beexecuted prior to the maximum allowable delay time set so as tocorrespond to the interrupt request originating source, the processproceeds to step S105, to set a timer such that a “reservation queueaddition process” will be executed after a minimum allowable delay timeset so as to correspond to the interrupt request originating sourcepasses.

The minimum allowable delay time is, as described earlier with referenceto FIG. 10, information included in the interrupt request originatingsource information. The level 0-OS (0) sets the timer on the basis ofthe minimum allowable delay time, and executes the “reservation queueaddition process” after the minimum allowable delay time passes. Thisreservation queue addition process will be described with reference toFIG. 15 later.

Note that a reservation queue to be added is, as mentioned earlier, setfor each interrupt group, and thus interrupt request information isadded to a reservation queue corresponding to an interrupt group on thebasis of an interrupt group number included in the interrupt requestoriginating source information. The information set in the queue is, asdescribed earlier with reference to FIG. 12, the interrupt request ID,the maximum allowable delay time, the minimum allowable delay time.

After the information is added to the reservation queue, the level 0-OS(0) sequentially acquires interrupt requests from the queue in the orderof first ones, and executes a partition setting process in which theirmaximum allowable delay time and minimum allowable delay time are takeninto account, in accordance with the aforementioned example processes.

b. Process of Adding an Interrupt Request to a Reservation Queue (FIG.15)

A process of adding an interrupt request to a reservation queue will bedescribed next with reference to the flow of FIG. 15.

In step S201, an interrupt request originating source S is specified,and in step S202, an interrupt group g is specified by referring to theinterrupt request originating source information on the basis of theinterrupt request originating source S, to determine the group to whichan interrupt request is to be added belongs.

Furthermore, in step S203, a maximum allowable delay time (Tmax)corresponding to the interrupt request is added to the interrupt requestoccurring time (t), to calculate maximum delay execution timeinformation Td (deadline) for the interrupt request, and in step S204,the timer is set to the maximum delay execution time information Td(deadline). This timer setting information is used to execute a forcedinterrupt in a case where an interrupt partition, such as partitionswitching, cannot be set within this period of time.

In a case where an interrupt partition such as partition switching canbe set prior to the time limit set by the timer, the timer is reset. Ina case where an interrupt partition such as partition switching cannotbe set prior to the time limit set by the timer, a partition beingexecuted is suspended to execute the interrupt process, i.e., to performa forced interrupt process, as the time limit set by the timer expires.

c. Forced Interrupt Process

Referring next to FIG. 16, a procedure for executing a forced interruptprocess will be described. This forced interrupt process is, asdescribed earlier with reference to FIG. 5, a process performed in acase where partition switching is not performed within a maximumallowable delay time set so as to correspond to an interrupt request(interrupt request originating source).

In step S301, the level 0-OS (0) stores in a memory a contextcorresponding to a partition being executed by a level 1-OS (1 x) whichis caused to execute the interrupt process, while suspending a currentpartition. The context includes information necessary to resume theprocess after the suspension, such as, e.g., register values.

In step S302, an entry in a reservation queue corresponding to theinterrupt process to be executed by the forced interrupt is deleted, andin step S303, the interrupt request information is added to the notifiedinterrupt request information. Note that in performing this process, thelevel 0-OS (0) notifies an OS (1 x) for executing the interruptpartition by means of forced interrupt to execute the interrupt request.The level 1-OS (1 x) notified of a request for processing the interruptrequest performs the interrupt request process.

Furthermore, in step S304, the level 0-OS (0) reconstructs the contextof the suspended partition, and in step S305, jumps to an interruptvector of the suspended partition. This processing of steps S304, S305is to cause the level 1-OS (1 x) to resume the partition suspended bythe interrupt request process, and is to be performed so as to restorethe partition to what it was before the suspension, in step S304, and tocause the partition to return to what its process step was before thesuspension, in step S305.

d. Partition Switching Process

Next, a partition switching process will be described with reference toa flowchart of FIG. 17.

Partition switching is executed at a timing according to a partitionschedule set by the level 0-OS (0). Or, it is also a process executed inthe case of the above-mentioned forced interrupt.

In step S401, the level 0-OS (0) stores in a memory the context of acurrent partition which will be closed in order to execute partitionswitching. The context includes information necessary to resume thepartition, such as, e.g., register values.

In step S402, queue storing conditions as to the reservation queue of aninterrupt group related to a processor now executing the currentpartition is determined.

In a case where the queue is empty, an interrupt process is not to beexecuted, but a process according to a pre-set partition schedule willbe executed. Thus, the process proceeds to step S403, where the contextof a partition scheduled to be executed next is reconstructed, and, onthe basis of the reconstructed context, the next partition is executedby the level 1-OS (1 x).

In a case where it is determined in step S402 that there is an interruptrequest queue in the reservation queues of the interrupt group relatedto the processor now executing the current partition, the processproceeds to step S411, where interrupt request entries are acquired fromthe reservation queue in the order of first ones. As mentioned earlier,each reservation queue has interrupt requests arranged in the order oftheir shorter maximum allowable delay times.

In step S412, an OS (1 x) for executing an interrupt partitioncorresponding to the acquired interrupt request from the reservationqueue is notified to execute the interrupt request. The level 1-OS (1 x)notified of a request for processing the interrupt request performs aninterrupt request process. In step S413, the interrupt information isadded to the notified interrupt request information.

In step S414, a timer setting for processing a forced interrupt set soas to correspond to a maximum allowable delay time of the notifiedinterrupt request is released.

Furthermore, in step S415, the status values are restored to what theywere before the interrupt process was executed, i.e., the context of thepartition is reconstructed, and in step S416, a process of jumping to aninterrupt vector of the partition is executed. The processing of stepsS415, S416 is to cause the level 1-OS (1 x) to normally execute apartition scheduled to be executed subsequent to the partition delayedby the interrupt request process, and thus, the processing of step S415is performed as a process of restoring various status values that havechanged due to occurrence of the interrupt to what they were in a casewhere the interrupt did not occur, and the processing of step S416 isexecuted as a process of setting the level 1-OS (1 x) to a process stepwhere the interrupt did not occur.

[9. Example Hardware Configuration of Information Processing Apparatus]

Next, an example hardware configuration of an information processingapparatus will be described, which has the process management means thatexecutes the above-mentioned processes. The above-mentioned processmanagement is implementable by ordinary PCs, and is thus implemented invarious information processing apparatuses including PCs, by storing anOS having a hierarchical configuration shown in FIG. 1, i.e., aplurality of level 1-OS (1 x) programs that actually execute processingin cooperation with applications, and by storing a level 0-OS (0)program that executes partition management over these plurality of level1-OS (1 x) programs.

FIG. 18 shows a configuration example of an information processingapparatus capable of executing the above-mentioned process management.

CPUs (Central Processing Units) 951, 952, 953 execute various processesaccording to programs stored in a ROM (Read Only Memory) 902, a HDD 904,or the like, and thus function as data processing means.

They execute various processes under the control of the level 1-OSs (1x) in the above-mentioned embodiments. Furthermore, they are alsoapplied to the processes executed by the level 0-OS (0). The processors(CPUs) are provided with timers 961, 962, 963, respectively, which areused for partition scheduling management, measurement of the maximumdelay time and the minimum delay time of interrupt requests.

A RAM 903 stores programs executed and data processed by each of theCPUs 961, 962, 963, as appropriate. The programs include a partitionmanagement program executed by the level 0-OS (0), and theabove-mentioned various processes are to be executed on the basis of thepartition management program.

Further, stored therein are interrupt group-corresponding reservationqueues, interrupt request originating source information, notifiedinterrupt request information within the shared memory, and furtherinformation stored in the local memories corresponding to the respectiveprocessors, such as, e.g., context information to be stored,reconstructed at the time of partition switching, various timeinformation, address information. While the local memories and theshared memory are described as individual entities in FIG. 9, these maybe stored by dividing a single memory into the corresponding storageareas. The CPUs 951, 952, 953, the ROM 902, and the RAM 903, the HDD 904are interconnected via a bus 905.

Connected to the bus 905 is an input/output interface 906, and connectedto the input/output interface 906 are, e.g., an input section 907 thatprocesses input information from a keyboard, a mouse, and the likemanipulated by a user, an output section 908 constructed of an LCD, aCRT, speakers, and the like that present various information to theuser. Furthermore, connected thereto are a communication section 909that functions as a data exchanging means, a drive 910 that has aremovable recording medium 911 such as a magnetic disk, an optical disc,a magneto-optical disc, or a semiconductor memory attached thereto, andthat executes data reading or writing from or to the removable recordingmedium 911.

The hardware configuration shown in FIG. 18 is a hardware configurationexample of a PC, which is one of information processing apparatuses towhich the above-mentioned process management is applicable. The processmanagement of the present invention is applicable not only to this PCconfiguration, but also to various information processing apparatusesincluding game machines, communication terminal apparatuses, in which aplurality of OSs are installed and process management by partitionmanagement is executed.

The present invention has been described above in great detail withreference to the specific embodiments. However, it is self-explanatorythat those skilled in the art can make modifications to andsubstitutions for the embodiments without departing from the scope andspirit of the present invention. That is, the present invention has beendisclosed by way of examples, and thus should not be construed in arestrictive sense. In order to judge the scope and spirit of the presentinvention, the appended claims should be taken into consideration.

Note that the series of processes described in the specification can beperformed by hardware, software, or a configuration in which both arecombined. In a case where a process based on software is executed, theprocesses could be executed by installing a program having recordedprocessing sequences therein in a memory within a computer incorporatedinto dedicated hardware, or by installing the program in ageneral-purpose computer that can execute various processing.

For example, the program can be recorded on a hard disk or a ROM (ReadOnly memory) as a recording medium beforehand. Alternatively, theprogram can be stored (recorded) temporarily or permanently on aremovable recording medium, such as a flexible disk, a CD-ROM (CompactDisc Read Only Memory), a MO (Magneto optical) disk, a DVD (DigitalVersatile Disc), a magnetic disk, a semiconductor memory. Such aremovable recording medium can be provided as so-called packagesoftware.

Note that the program can be installed in the computer not only from aremovable recording medium such as those mentioned above, but alsothrough wireless transmission to the computer from a downloading site,wired transmission to the computer via a network such as a LAN, theInternet to allow the computer to receive the thus transmitted programfor installation in a storage medium such as a hard disk incorporatedtherein.

Note that the various processes described in the specification areexecuted not only time-sequentially according to the description, butmay also be executed parallely or individually, as necessary, accordingto the processing capacity of apparatuses assigned to execute theprocesses. In addition, the system in the present description means alogical mass structure of a plurality of apparatuses, and is not limitedto those having apparatuses of respective structure in a single housing.

INDUSTRIAL APPLICABILITY

As described above, according to the configuration of the presentinvention, in a process control for switching processes which are basedon a plurality of operating systems (OSs), it is configured to set aninterrupt processing partition as an interrupt processing executionperiod corresponding to an interrupt processing request so as tocoincide with a pre-set partition switching timing. Therefore, anincrement in the number of partition switching processes correspondingto the interrupt request can be kept to 1, whereby processing load isprevented from increasing, and efficient data processing can beexecuted.

Furthermore, according to the configuration of the present invention, ina case where a maximum allowable delay time or a minimum allowable delaytime is set to an interrupt processing request, it is configured to setan interrupt processing partition at a partition switching timing if thepartition switching timing occurs within these allowable times, and toperform a forced interrupt process, e.g., in a case where the partitionswitching timing does not occur within these allowable times, whereby toexecute processing accommodating various interrupt processing requests.Therefore, a configuration free from processing error is implemented.

Furthermore, according to the configuration of the present invention, ina configuration in which processes by a plurality of OSs are executablein parallel in a multi-processor system, it is configured to select oneof a plurality of partition schedules corresponding to a plurality ofprocessors, and set an interrupt processing partition so as to coincidewith a partition switching timing in the selected partition schedule.Therefore, the interrupt request can be executed at the earliestpartition switching timing after the occurrence of the interruptprocessing request, from among the plurality of partition schedules, andthus more efficient data processing becomes possible.

1. An information processing apparatus, comprising: a storage sectionstoring a plurality of operating systems (OSs); a first processor thatexecutes processes of the OSs; and a process manager that: schedulesexecution of partitions of the OSs along a time axis, wherein a first OSof the OSs is executing in a current partition, controls the timing ofswitching between execution of the partitions in accordance with theschedule, the schedule including a schedualed switch to a second OS ofthe OSs, receives an interrupt request having a maximum time thatexecution of an interrupt associated with the interrupt request can bedelayed from receipt of the interrupt request, the interrupt requestrequiring the second OS of the OSs, determines whether the time to thescheduled switch to the second OS is less than the maximum allowabledelay time from receipt of the interrupt request, when it is determinedthat the time to the scheduled switch to the second OS is less than themaximum allowable delay time from receipt of the interrupt request,causes the second OS to execute the interrupt request at the time of thescheduled switch to the second OS, and when it is determined that thetime to the scheduled switch to the second OS is longer than the maximumallowable delay time from receipt of the interrupt request, causes thesecond OS to execute the interrupt request by interrupting execution ofthe current partition.
 2. The information processing apparatus accordingto claim 1, wherein the process manager is further configured tosuspended execution of the partitions to execute the interrupt process,when it is determined that the time to the earliest scheduled switch islonger than the maximum allowable delay time from the occurrence of theinterrupt request.
 3. The information processing apparatus according toclaim 1, further comprising: a second processor that executes theprocesses of the OSs in parallel with the first processor, wherein theprocess manager is further configured to: schedule execution of thepartitions along the time axis as to the first and second processorssuch that the first and second processors switch between execution ofthe partitions in accordance with the schedule, select a schedulecorresponding to the first processor or to the second processor, andinterrupt execution of the partitions by the first processor or thesecond processor at the time of a scheduled switch between execution ofthe partitions contained in the selected schedule.
 4. The informationprocessing apparatus according to claim 3, wherein the process manageris configured to: select a schedule having the earliest scheduled switchbetween execution of the partitions after receiving the interruptrequest, and interrupt execution of the partitions at the time of theearliest scheduled switch.
 5. The information processing apparatusaccording to claim 1, wherein the process manager is further configuredto: receive a second interrupt request having a minimum allowableexecution delay time, and execution of the partitions at the time of ascheduled switch between execution of the partitions that occurs afterthe minimum allowable delay time from receipt of the second interruptrequest has elapsed.
 6. The information processing apparatus accordingto claim 1, wherein the process manager is further configured to:receive a second interrupt request that is executable during executionof a specific partition, determine, based on the schedule, when thespecific partition will be executed, and when the specific partition isbeing executed, interrupt execution of the specific partition to executethe second interrupt request.
 7. The information processing apparatusaccording to claim 1, further comprising: a second processor thatexecutes the processes of the OSs in parallel with the first processor,and first and second partition switching modules for respectivelycontrolling the processors to switch between execution of thepartitions, wherein the process manager is further configured to thefirst and second partition switching modules to cause the processors toexecute the partitions in accordance with the schedule.
 8. Theinformation processing apparatus according to claim 7, furthercomprising: a memory storing reservation queues of entries containinginformation about received interrupt requests, the queues being groupedbased on sources from which the interrupt requests originated whereinthe first and second partition switching modules are configured toselect, from the reservation queues and based on the grouping, entriescorresponding to interrupt requests originating from sources which canbe accommodated by the processors, respectively.
 9. A method performedby a computer for controlling switching between execution of partitionsof a plurality of operating systems (OSs), comprising: receiving, by oneor more processors, an interrupt processing request when a first OS ofthe OSs is executing in a current partition, determining, by the one ormore processors, whether the interrupt processing request has a maximumtime that execution of an interrupt associated with the interruptrequest can be delayed from receipt of the interrupt request andrequires a second OS of the OSs to execute the interrupt, receiving, bythe one or more processors, a schedule of execution of the partitionsincluding a scheduled switch to the second OS, determining, by theprocessor, whether the time to the scheduled switch to the second OS isless than the maximum allowable delay time from receipt of the interruptrequest, when it is determined that when the time to the scheduledswitch is less than the maximum allowable delay time, scheduling, by theone or more processors, execution of the interrupt processing requestfor the scheduled switch to the second OS, and when it is determinedthat the time to the scheduled switch to the second OS is longer thanthe maximum allowable delay time from receipt of the interrupt request,interrupting, by the one or more processors, causing the second OS toexecute the interrupt request by interrupting execution of the currentpartition.
 10. The method according to claim 9, further comprising: whenit is determined that the time to the earliest scheduled switch islonger than the maximum allowable delay time from receipt of theinterrupt processing request, suspending, by the processor, execution ofthe partitions to execute the a partition interrupt processing request.11. The method according to claim 9, further comprising: scheduling, bythe processor, execution of the partitions along a time axis as to aplurality of processors that execute the partitions of the OSs, suchthat the processors switch between execution of the partitions inaccordance with the schedule, selecting, by the processor, a schedulecorresponding to one of the processors, and interrupting, by theprocessor, execution of the partitions by the processor corresponding tothe selected schedule to execute the interrupt processing request. 12.The method according to claim 11, wherein interrupting executionincludes selecting, by the processor, a schedule having an earliestscheduled switch between execution of the partitions after receipt ofthe interrupt request, and executing, by the processor, the interruptprocessing request at the time of the earliest scheduled switch.
 13. Themethod according to claim 9, further comprising: receiving, by theprocessor, a second processing interrupt request having a minimumallowable execution delay time, scheduling, by the processor, executionof the second interrupt processing request at the time of a scheduledswitch between execution of the partitions that occurs after the minimumallowable delay time has elapsed.
 14. The method according to claim 9,further comprising: receiving, by the processor, a second interruptprocessing request that is executable during execution of a specificpartition, determining, by the processor and based on the schedule, whenthe specific partition will be executed, and when the specific partitionis being executed, interrupting, by the processor, execution of thespecific partition to execute the second interrupt processing request.15. A computer-readable storage medium storing a computer program which,when executed by an information processing apparatus, causes theinformation processing apparatus to perform a method for controllingswitching between execution of partitions of a plurality of operatingsystems (OSs), the method comprising: receiving, by one or moreprocessors, an interrupt processing request when a first OS of the OSsis executing in a current partition, determining, by the one or moreprocessors, whether the interrupt processing request has a maximum timethat execution of an interrupt associated with the interrupt request canbe delayed from receipt of the interrupt request and requires a secondOS of the OSs to execute the interrupt, receiving, by the one or moreprocessors, a schedule of execution of the partitions including ascheduled switch to the second OS, determining, by the processor,whether the time to the scheduled switch to the second OS is less thanthe maximum allowable delay time from receipt of the interrupt request,when it is determined that when the time to the scheduled switch is lessthan the maximum allowable delay time, scheduling, by the one or moreprocessors, execution of the interrupt processing request for thescheduled switch to the second OS, and when it is determined that thetime to the scheduled switch to the second OS is longer than the maximumallowable delay time from receipt of the interrupt request, causing, bythe one or more processors, the second OS to execute the interruptrequest by interrupting execution of the current partition.